home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 1.iso / dist / fw_ddd.idb / usr / freeware / info / ddd.info-3.z / ddd.info-3
Text File  |  2001-10-09  |  51KB  |  1,498 lines

  1. This is ddd.info, produced by makeinfo version 4.0 from ddd.texi.
  2.  
  3. INFO-DIR-SECTION Miscellaneous
  4. START-INFO-DIR-ENTRY
  5. * DDD: (ddd).                     The Data Display Debugger.
  6. END-INFO-DIR-ENTRY
  7.  
  8. DDD is a graphical front-end for GDB and other command-line debuggers.
  9.  
  10. This is the First Edition, 2001-02-01, of `Debugging with DDD' for DDD
  11. Version 3.3.1.
  12.  
  13. Copyright (C) 2001 UniversitΣt Passau
  14. Lehrstuhl fⁿr Software-Systeme
  15. Innstra▀e 33
  16. D-94032 Passau
  17. GERMANY
  18.  
  19. Distributed by
  20. Free Software Foundation, Inc.
  21. 59 Temple Place - Suite 330
  22. Boston, MA 02111-1307
  23. USA
  24.  
  25. DDD and this manual are available via the DDD WWW page
  26. (http://www.gnu.org/software/ddd/).
  27.  
  28.    Permission is granted to copy, distribute and/or modify this document
  29. under the terms of the GNU Free Documentation License, Version 1.1 or
  30. any later version published by the Free Software Foundation; with no
  31. Invariant Sections, no Front-Cover Texts and no Back-Cover Texts.  A
  32. copy of the license is included in the section entitled "GNU Free
  33. Documentation License".
  34.  
  35.    Send questions, comments, suggestions, etc. to <ddd@gnu.org>.
  36. Send bug reports to <bug-ddd@gnu.org>.
  37. 
  38. File: ddd.info,  Node: Debugger Communication,  Prev: Debugger Initialization,  Up: Customizing Debugger Interaction
  39.  
  40. Communication with the Inferior Debugger
  41. ----------------------------------------
  42.  
  43.    The following resources control the communication with the inferior
  44. debugger.
  45.  
  46.  - Resource: blockTTYInput (class BlockTTYInput)
  47.      Whether DDD should block when reading data from the inferior
  48.      debugger via the pseudo-tty interface.  Most UNIX systems except
  49.      GNU/Linux _require_ this; set it to `on'.  On GNU/Linux, set it to
  50.      `off'.  The value `auto' (default) will always select the "best"
  51.      choice (that is, the best choice known to the DDD developers).
  52.  
  53.  - Resource: bufferGDBOutput (class BufferGDBOutput)
  54.      If this is `on', all output from the inferior debugger is buffered
  55.      until a debugger prompt appears.  This makes it easier for DDD to
  56.      parse the output, but has the drawback that interaction with a
  57.      running debuggee in the debugger console is not possible.  If
  58.      `off', output is shown as soon as it arrives, enabling
  59.      interaction, but making it harder for DDD to parse the output.  If
  60.      `auto' (default), output is buffered if and only if the execution
  61.      window is open, which redirects debuggee output and thus enables
  62.      interaction.  *Note Using the Execution Window::, for details.
  63.  
  64.  - Resource: contInterruptDelay (class InterruptDelay)
  65.      The time (in ms) to wait before automatically interrupting a `cont'
  66.      command.  DDD cannot interrupt a `cont' command immediately,
  67.      because this may disturb the status change of the process.
  68.      Default is `200'.
  69.  
  70.  - Resource: displayTimeout (class DisplayTimeout)
  71.      The time (in ms) to wait for the inferior debugger to finish a
  72.      partial display information.  Default is `2000'.
  73.  
  74.  - Resource: positionTimeout (class PositionTimeout)
  75.      The time (in ms) to wait for the inferior debugger to finish a
  76.      partial position information.  Default is `500'.
  77.  
  78.  - Resource: questionTimeout (class QuestionTimeout)
  79.      The time (in seconds) to wait for the inferior debugger to reply.
  80.      Default is `10'.
  81.  
  82.  - Resource: runInterruptDelay (class InterruptDelay)
  83.      The time (in ms) to wait before automatically interrupting a `run'
  84.      command.  DDD cannot interrupt a `cont' command immediately,
  85.      because this may disturb process creation.  Default is `2000'.
  86.  
  87.  - Resource: stopAndContinue (class StopAndContinue)
  88.      If `on' (default), debugger commands interrupt program execution,
  89.      resuming execution after the command has completed.  This only
  90.      happens if the last debugger command was either a `run' or a
  91.      `continue' command.  If `off', debugger commands do not interrupt
  92.      program execution.
  93.  
  94.  - Resource: synchronousDebugger (class SynchronousDebugger)
  95.      If `on', X events are not processed while the debugger is busy.
  96.      This may result in slightly better performance on single-processor
  97.      systems.  *Note Options::, for the `--sync-debugger' option.
  98.  
  99.  - Resource: terminateOnEOF (class TerminateOnEOF)
  100.      If `on', DDD terminates the inferior debugger when DDD detects an
  101.      EOF condition (that is, as soon as the inferior debugger closes
  102.      its output channel).  This was the default behavior in DDD 2.x and
  103.      earlier.  If `off' (default), DDD takes no special action.
  104.  
  105.  - Resource: useTTYCommand (class UseTTYCommand)
  106.      If `on', use the GDB `tty' command for redirecting input/output to
  107.      the separate execution window.  If `off', use explicit redirection
  108.      through shell redirection operators `<' and `>'.  The default is
  109.      `off' (explicit redirection), since on some systems, the `tty'
  110.      command does not work properly on some GDB versions.
  111.  
  112. 
  113. File: ddd.info,  Node: Windows,  Next: Navigating,  Prev: Invocation,  Up: Top
  114.  
  115. The DDD Windows
  116. ***************
  117.  
  118.    DDD is composed of three main windows.  From top to bottom, we have:
  119.  
  120.    * The "Data Window" shows the current data of the debugged program.
  121.      *Note Displaying Values::, for details.
  122.  
  123.    * The "Source Window" shows the current source code of the debugged
  124.      program.  *Note Navigating::, for details.
  125.  
  126.    * The "Debugger Console" accepts debugger commands and shows debugger
  127.      messages.  *Note Commands::, for details.
  128.  
  129.    Besides these three main windows, there are some other optional
  130. windows:
  131.  
  132.    * The "Command Tool" offers buttons for frequently used commands.
  133.      It is usually placed on the source window.  *Note Command Tool::,
  134.      for details.
  135.  
  136.    * The "Machine Code Window" shows the current machine code.  It is
  137.      usually placed beneath the current source.  *Note Machine Code::,
  138.      for details.
  139.  
  140.    * The "Execution Window" shows the input and output of the debugged
  141.      program.  *Note Using the Execution Window::, for details.
  142.  
  143. * Menu:
  144.  
  145. * Menu Bar::                    All DDD pull-down menus.
  146. * Tool Bar::                    The DDD icon buttons.
  147. * Command Tool::                The floating command tool.
  148. * Getting Help::                What does this thing mean?
  149. * Undo and Redo::               Oops!
  150. * Customizing::                 You can customize DDD
  151.  
  152. 
  153. File: ddd.info,  Node: Menu Bar,  Next: Tool Bar,  Up: Windows
  154.  
  155. The Menu Bar
  156. ============
  157.  
  158.    The DDD Menu Bar gives you access to all DDD functions.
  159.  
  160. `File'
  161.      Perform file-related operations such as selecting programs,
  162.      processes, and sessions, printing graphs, recompiling, as well as
  163.      exiting DDD.
  164.  
  165. `Edit'
  166.      Perform standard editing operations, such as cutting, copying,
  167.      pasting, and killing selected text.  Also allows editing DDD
  168.      options and preferences.
  169.  
  170. `View'
  171.      Allows accessing the individual DDD windows.
  172.  
  173. `Program'
  174.      Perform operations related to the program being debugged, such as
  175.      starting and stopping the program.
  176.  
  177. `Commands'
  178.      Perform operations related to DDD commands, such as accessing the
  179.      command history or defining new commands.
  180.  
  181. `Status'
  182.      Examine the program status, such as the stack traces, registers, or
  183.      threads.
  184.  
  185. `Source'
  186.      Perform source-related operations such as looking up items or
  187.      editing breakpoints.
  188.  
  189. `Data'
  190.      Perform data-related operations such as editing displays or
  191.      layouting the display graph.
  192.  
  193. `Maintenance'
  194.      Perform operations that are useful for debugging DDD.  By default,
  195.      this menu is disabled.
  196.  
  197. `Help'
  198.      Give help on DDD usage.
  199.  
  200.    There are two ways of selecting an item from a pull-down menu:
  201.  
  202.    * Select an item in the menu bar by moving the cursor over it and
  203.      click _mouse button 1_.  Then move the cursor over the menu item
  204.      you want to choose and click left again.
  205.  
  206.    * Select an item in the menu bar by moving the cursor over it and
  207.      click and hold _mouse button 1_.  With the mouse button depressed,
  208.      move the cursor over the menu item you want, then release it to
  209.      make your selection.
  210.  
  211.    The menus can also be "torn off" (i.e. turned into a persistent
  212. window) by selecting the dashed line at the top.
  213.  
  214.    If a command in the pull-down menu is not applicable in a given
  215. situation, the command is "disabled" and its name appears faded.  You
  216. cannot invoke items that are faded.  For example, many commands on the
  217. `Edit' menu appear faded until you select text on which they are to
  218. operate; after you select a block of text, edit commands are enabled.
  219.  
  220. * Menu:
  221.  
  222. * File Menu::                   Selecting programs and processes.
  223. * Edit Menu::                   Cut, copy, paste, and preferences.
  224. * View Menu::                   All DDD windows.
  225. * Program Menu::                Starting and stopping.
  226. * Commands Menu::               All DDD commands.
  227. * Status Menu::                 Examining the program status.
  228. * Source Menu::                 Navigating around.
  229. * Data Menu::                   Examining data.
  230. * Maintenance Menu::            Maintaining DDD.
  231. * Help Menu::                   Getting help.
  232. * Customizing the Menu Bar::    Alternate key bindings, etc.
  233.  
  234. 
  235. File: ddd.info,  Node: File Menu,  Next: Edit Menu,  Up: Menu Bar
  236.  
  237. The File Menu
  238. -------------
  239.  
  240.    The `File' menu contains file-related operations such as selecting
  241. programs, processes, and sessions, printing graphs, recompiling, as well
  242. as exiting DDD.
  243.  
  244. `Open Program'
  245. `Open Class'
  246.      Open a program or class to be debugged.  *Note Opening Programs::,
  247.      for details.
  248.  
  249. `Open Recent'
  250.      Re-open a recently opened program to be debugged.  *Note Opening
  251.      Programs::, for details.
  252.  
  253. `Open Core Dump'
  254.      Open a core dump for the currently debugged program.  *Note
  255.      Opening Core Dumps::, for details.
  256.  
  257. `Open Source'
  258.      Open a source file of the currently debugged program.  *Note
  259.      Opening Source Files::, for details.
  260.  
  261. `Open Session'
  262.      Resume a previously saved DDD session.  *Note Resuming Sessions::,
  263.      for details.
  264.  
  265. `Save Session As'
  266.      Save the current DDD session such that you can resume it later.
  267.      *Note Saving Sessions::, for details.
  268.  
  269. `Attach to Process'
  270.      Attach to a running process of the debugged program.  *Note
  271.      Attaching to a Process::, for details.
  272.  
  273. `Detach Process'
  274.      Detach from the running process.  *Note Attaching to a Process::,
  275.      for details.
  276.  
  277. `Print Graph'
  278.      Print the current graph on a printer.  *Note Printing the Graph::,
  279.      for details.
  280.  
  281. `Change Directory'
  282.      Change the working directory of your program.  *Note Working
  283.      Directory::, for details.
  284.  
  285. `Make'
  286.      Run the `make' program.  *Note Recompiling::, for details.
  287.  
  288. `Close'
  289.      Close this DDD window.
  290.  
  291. `Restart'
  292.      Restart DDD.
  293.  
  294. `Exit'
  295.      Exit DDD.
  296.  
  297. 
  298. File: ddd.info,  Node: Edit Menu,  Next: View Menu,  Prev: File Menu,  Up: Menu Bar
  299.  
  300. The Edit Menu
  301. -------------
  302.  
  303.    The `Edit' menu contains standard editing operations, such as
  304. cutting, copying, pasting, and killing selected text.  Also allows
  305. editing DDD options and preferences.
  306.  
  307. `Undo'
  308.      Undo the most recent action.  Almost all commands can be undone
  309.      this way.  *Note Undo and Redo::, for details.
  310.  
  311. `Redo'
  312.      Redo the action most recently undone.  Every command undone can be
  313.      redone this way.  *Note Undo and Redo::, for details.
  314.  
  315. `Cut'
  316.      Removes the selected text block from the current text area and
  317.      makes it the X clipboard selection.  Before executing this
  318.      command, you have to select a region in a text area--either with
  319.      the mouse or with the usual text selection keys.
  320.  
  321.      This item can also be applied to displays (*note Deleting
  322.      Displays::).
  323.  
  324. `Copy'
  325.      Makes a selected text block the X clipboard selection.  You can
  326.      select text by selecting a text region with the usual text
  327.      selection keys or with the mouse.  *Note Customizing the Edit
  328.      Menu::, for changing the default accelerator.
  329.  
  330.      This item can also be applied to displays (*note Deleting
  331.      Displays::).
  332.  
  333. `Paste'
  334.      Inserts the current value of the X clipboard selection in the most
  335.      recently selected text area.  You can paste in text you have
  336.      placed in the clipboard using `Copy' or `Cut'.  You can also use
  337.      `Paste' to insert text that was pasted into the clipboard from
  338.      other applications.
  339.  
  340. `Clear'
  341.      Clears the most recently selected text area.
  342.  
  343. `Delete'
  344.      Removes the selected text block from the most recently selected
  345.      text area, but does not make it the X clipboard selection.
  346.  
  347.      This item can also be applied to displays (*note Deleting
  348.      Displays::).
  349.  
  350. `Select All'
  351.      Selects all characters from the most recently selected text area.
  352.      *Note Customizing the Edit Menu::, for changing the default
  353.      accelerator.
  354.  
  355. `Preferences'
  356.      Allows you to customize DDD interactively.  *Note Customizing::,
  357.      for details.
  358.  
  359. `Debugger Settings'
  360.      Allows you to customize the inferior debugger.  *Note Debugger
  361.      Settings::, for details.
  362.  
  363. `Save Options'
  364.      Saves all preferences and settings for the next DDD invocation.
  365.      *Note Saving Options::, for details.
  366.  
  367. 
  368. File: ddd.info,  Node: View Menu,  Next: Program Menu,  Prev: Edit Menu,  Up: Menu Bar
  369.  
  370. The View Menu
  371. -------------
  372.  
  373.    The `View' menu allows accessing the individual DDD windows.
  374.  
  375. `Command Tool'
  376.      Open and recenter the command tool.  *Note Command Tool::, for
  377.      details.
  378.  
  379. `Execution Window'
  380.      Open the separate execution window.  *Note Using the Execution
  381.      Window::, for details.
  382.  
  383. `Debugger Console'
  384.      Open the debugger console.  *Note Commands::, for details.
  385.  
  386. `Source Window'
  387.      Open the source window.  *Note Navigating::, for details.
  388.  
  389. `Data Window'
  390.      Open the data window.  *Note Displaying Values::, for details.
  391.  
  392. `Machine Code Window'
  393.      Show machine code.  *Note Machine Code::, for details.
  394.  
  395. 
  396. File: ddd.info,  Node: Program Menu,  Next: Commands Menu,  Prev: View Menu,  Up: Menu Bar
  397.  
  398. The Program Menu
  399. ----------------
  400.  
  401.    The `Program' menu performs operations related to the program being
  402. debugged, such as starting and stopping the program.
  403.  
  404.    Most of these operations are also found on the command tool (*note
  405. Command Tool::).
  406.  
  407. `Run'
  408.      Start program execution, prompting for program arguments.  *Note
  409.      Starting Program Execution::, for details.
  410.  
  411. `Run Again'
  412.      Start program execution with the most recently used arguments.
  413.      *Note Starting Program Execution::, for details.
  414.  
  415. `Run in Execution Window'
  416.      If enabled, start next program execution in separate execution
  417.      window.  *Note Using the Execution Window::, for details.
  418.  
  419. `Step'
  420.      Continue running your program until control reaches a different
  421.      source line, then stop it and return control to DDD.  *Note
  422.      Resuming Execution::, for details.
  423.  
  424. `Step Instruction'
  425.      Execute one machine instruction, then stop and return to DDD.
  426.      *Note Machine Code Execution::, for details.
  427.  
  428. `Next'
  429.      Continue to the next source line in the current (innermost) stack
  430.      frame.  This is similar to `Step', but function calls that appear
  431.      within the line of code are executed without stopping.  *Note
  432.      Resuming Execution::, for details.
  433.  
  434. `Next Instruction'
  435.      Execute one machine instruction, but if it is a function call,
  436.      proceed until the function returns.  *Note Machine Code
  437.      Execution::, for details.
  438.  
  439. `Until'
  440.      Continue running until a source line past the current line, in the
  441.      current stack frame, is reached.  *Note Resuming Execution::, for
  442.      details.
  443.  
  444. `Finish'
  445.      Continue running until just after function in the selected stack
  446.      frame returns.  Print the returned value (if any).  *Note Resuming
  447.      Execution::, for details.
  448.  
  449. `Continue'
  450.      Resume program execution, at the address where your program last
  451.      stopped; any breakpoints set at that address are bypassed.  *Note
  452.      Resuming Execution::, for details.
  453.  
  454. `Continue Without Signal'
  455.      Continue execution without giving a signal.  This is useful when
  456.      your program stopped on account of a signal and would ordinary see
  457.      the signal when resumed with `Continue'.  *Note Signals::, for
  458.      details.
  459.  
  460. `Kill'
  461.      Kill the process of the debugged program.  *Note Killing the
  462.      Program::, for details.
  463.  
  464. `Interrupt'
  465.      Interrupt program execution.  This is equivalent to sending an
  466.      interrupt signal to the process.  *Note Interrupting::, for
  467.      details.
  468.  
  469. `Abort'
  470.      Abort program execution (and maybe debugger execution, too).  This
  471.      is equivalent to sending a `SIGABRT' signal to the process.  *Note
  472.      Quitting::, for details.
  473.  
  474. 
  475. File: ddd.info,  Node: Commands Menu,  Next: Status Menu,  Prev: Program Menu,  Up: Menu Bar
  476.  
  477. The Commands Menu
  478. -----------------
  479.  
  480.    The `Commands' menu performs operations related to DDD commands,
  481. such as accessing the command history or defining new commands.
  482.  
  483.    Most of these items are not meant to be actually executed via the
  484. menu; instead, they serve as _reminder_ for the equivalent keyboard
  485. commands.
  486.  
  487. `Command History'
  488.      View the command history.  *Note Command History::, for details.
  489.  
  490. `Previous'
  491.      Show the previous command from the command history.  *Note Command
  492.      History::, for details.
  493.  
  494. `Next'
  495.      Show the next command from the command history.  *Note Command
  496.      History::, for details.
  497.  
  498. `Find Backward'
  499.      Do an incremental search backward through the command history.
  500.      *Note Command History::, for details.
  501.  
  502. `Find Forward'
  503.      Do an incremental search forward through the command history.
  504.      *Note Command History::, for details.
  505.  
  506. `Quit Search'
  507.      Quit incremental search through the command history.  *Note
  508.      Command History::, for details.
  509.  
  510. `Complete'
  511.      Complete the current command in the debugger console.  *Note
  512.      Entering Commands::, for details.
  513.  
  514. `Apply'
  515.      Apply the current command in the debugger console.  *Note Entering
  516.      Commands::, for details.
  517.  
  518. `Clear Line'
  519.      Clear the current command line in the debugger console.  *Note
  520.      Entering Commands::, for details.
  521.  
  522. `Clear Window'
  523.      Clear the debugger console.  *Note Entering Commands::, for
  524.      details.
  525.  
  526. `Define Command'
  527.      Define a new debugger command.  *Note Defining Commands::, for
  528.      details.
  529.  
  530. `Edit Buttons'
  531.      Customize DDD buttons.  *Note Defining Buttons::, for details.
  532.  
  533. 
  534. File: ddd.info,  Node: Status Menu,  Next: Source Menu,  Prev: Commands Menu,  Up: Menu Bar
  535.  
  536. The Status Menu
  537. ---------------
  538.  
  539.    The `Status' menu lets you examine the program status, such as the
  540. stack traces, registers, or threads.
  541.  
  542. `Backtrace'
  543.      View the current backtrace.  *Note Backtraces::, for a discussion.
  544.  
  545. `Registers'
  546.      View the current register contents.  *Note Registers::, for
  547.      details.
  548.  
  549. `Threads'
  550.      View the current threads.  *Note Threads::, for details.
  551.  
  552. `Signals'
  553.      View and edit the current signal handling.  *Note Signals::, for
  554.      details.
  555.  
  556. `Up'
  557.      Select the stack frame (i.e. the function) that called this one.
  558.      This advances toward the outermost frame, to higher frame numbers,
  559.      to frames that have existed longer.  *Note Stack::, for details.
  560.  
  561. `Down'
  562.      Select the stack frame (i.e. the function) that was called by this
  563.      one.  This advances toward the innermost frame, to lower frame
  564.      numbers, to frames that were created more recently.  *Note
  565.      Stack::, for details.
  566.  
  567. 
  568. File: ddd.info,  Node: Source Menu,  Next: Data Menu,  Prev: Status Menu,  Up: Menu Bar
  569.  
  570. The Source Menu
  571. ---------------
  572.  
  573.    The `Source' menu performs source-related operations such as looking
  574. up items or editing breakpoints.
  575.  
  576. `Breakpoints'
  577.      Edit all Breakpoints.  *Note Editing all Breakpoints::, for
  578.      details.
  579.  
  580. `Lookup ()'
  581.      Look up the argument `()' in the source code.  *Note Looking up
  582.      Definitions::, for details.
  583.  
  584. `Find >> ()'
  585.      Look up the next occurrence of the argument `()' in the current
  586.      source code.  *Note Textual Search::, for details.
  587.  
  588. `Find << ()'
  589.      Look up the previous occurrence of the argument `()' in the current
  590.      source code.  *Note Textual Search::, for details.
  591.  
  592. `Find Words Only'
  593.      If enabled, find only complete words.  *Note Textual Search::, for
  594.      details.
  595.  
  596. `Find Case Sensitive'
  597.      If enabled, find is case-sensitive.  *Note Textual Search::, for
  598.      details.
  599.  
  600. `Display Line Numbers'
  601.      If enabled, prefix source lines with their line number.  *Note
  602.      Customizing Source::, for details.
  603.  
  604. `Display Machine Code'
  605.      If enabled, show machine code.  *Note Machine Code::, for details.
  606.  
  607. `Edit Source'
  608.      Invoke an editor for the current source file.  *Note Editing
  609.      Source Code::, for details.
  610.  
  611. `Reload Source'
  612.      Reload the current source file.  *Note Editing Source Code::, for
  613.      details.
  614.  
  615. 
  616. File: ddd.info,  Node: Data Menu,  Next: Maintenance Menu,  Prev: Source Menu,  Up: Menu Bar
  617.  
  618. The Data Menu
  619. -------------
  620.  
  621.    The `Data' menu performs data-related operations such as editing
  622. displays or layouting the display graph.
  623.  
  624. `Displays'
  625.      Invoke the Display Editor.  *Note Editing all Displays::, for
  626.      details.
  627.  
  628. `Watchpoints'
  629.      Edit all Watchpoints.  *Note Editing all Watchpoints::, for
  630.      details.
  631.  
  632. `Memory'
  633.      View a memory dump.  *Note Examining Memory::, for details.
  634.  
  635. `Print ()'
  636.      Print the value of `()' in the debugger console.  *Note Printing
  637.      Values::, for details.
  638.  
  639. `Display ()'
  640.      Display the value of `()' in the data window.  *Note Displaying
  641.      Values::, for details.
  642.  
  643. `Detect Aliases'
  644.      If enabled, detect shared data structures.  *Note Shared
  645.      Structures::, for a discussion.
  646.  
  647. `Display Local Variables'
  648.      Show all local variables in a display.  *Note Displaying Local
  649.      Variables::, for details.
  650.  
  651. `Display Arguments'
  652.      Show all arguments of the current function in a display.  *Note
  653.      Displaying Local Variables::, for details.
  654.  
  655. `Status Displays'
  656.      Show current debugging information in a display.  *Note Displaying
  657.      Program Status::, for details.
  658.  
  659. `Align on Grid'
  660.      Align all displays on the grid.  *Note Aligning Displays::, for a
  661.      discussion.
  662.  
  663. `Rotate Graph'
  664.      Rotate the graph by 90 degrees.  *Note Rotating the Graph::, for
  665.      details.
  666.  
  667. `Layout Graph'
  668.      Layout the graph.  *Note Layouting the Graph::, for details.
  669.  
  670. `Refresh'
  671.      Update all values in the data window.  *Note Refreshing the Data
  672.      Window::, for details.
  673.  
  674. 
  675. File: ddd.info,  Node: Maintenance Menu,  Next: Help Menu,  Prev: Data Menu,  Up: Menu Bar
  676.  
  677. The Maintenance Menu
  678. --------------------
  679.  
  680.    The `Maintenance' menu performs operations that are useful for
  681. debugging DDD.
  682.  
  683.    By default, this menu is disabled; it is enabled by specifically
  684. requesting it at DDD invocation (via the `--maintenance' option; *note
  685. Options::).  It is also enabled when DDD gets a fatal signal.
  686.  
  687. `Debug DDD'
  688.      Invoke a debugger (typically, GDB) and attach it to this DDD
  689.      process.  This is useful only if you are a DDD maintainer.
  690.  
  691. `Dump Core Now'
  692.      Make this DDD process dump core.  This can also be achieved by
  693.      sending DDD a `SIGUSR1' signal.
  694.  
  695. `Tic Tac Toe'
  696.      Invoke a Tic Tac Toe game.  You must try to get three stop signs
  697.      in a row, while preventing DDD from doing so with its skulls.
  698.      Click on `New Game' to restart.
  699.  
  700. `When DDD Crashes'
  701.      Select what to do when DDD gets a fatal signal.
  702.  
  703.     `Debug DDD'
  704.           Invoke a debugger on the DDD core dump when DDD crashes.
  705.           This is useful only if you are a DDD maintainer.
  706.  
  707.     `Dump Core'
  708.           Just dump core when DDD crashes; don't invoke a debugger.
  709.           This is the default setting, as the core dump may contain
  710.           important information required for debugging DDD.
  711.  
  712.     `Do Nothing'
  713.           Do not dump core or invoke a debugger when DDD crashes.
  714.  
  715. `Remove Menu'
  716.      Make this menu inaccessible again.
  717.  
  718. 
  719. File: ddd.info,  Node: Help Menu,  Next: Customizing the Menu Bar,  Prev: Maintenance Menu,  Up: Menu Bar
  720.  
  721. The Help Menu
  722. -------------
  723.  
  724.    The `Help' menu gives help on DDD usage.  *Note Getting Help::, for
  725. a discussion on how to get help within DDD.
  726.  
  727. `Overview'
  728.      Explains the most important concepts of DDD help.
  729.  
  730. `On Item'
  731.      Lets you click on an item to get help on it.
  732.  
  733. `On Window'
  734.      Gives you help on this DDD window.
  735.  
  736. `What Now?'
  737.      Gives a hint on what to do next.
  738.  
  739. `Tip of the Day'
  740.      Shows the current tip of the day.
  741.  
  742. `DDD Reference'
  743.      Shows the DDD Manual.
  744.  
  745. `DDD News'
  746.      Shows what's new in this DDD release.
  747.  
  748. `Debugger Reference'
  749.      Shows the on-line documentation for the inferior debugger.
  750.  
  751. `DDD License'
  752.      Shows the DDD License (*note License::).
  753.  
  754. `DDD WWW Page'
  755.      Invokes a WWW browser for the DDD WWW page.
  756.  
  757. `About DDD'
  758.      Shows version and copyright information.
  759.  
  760. 
  761. File: ddd.info,  Node: Customizing the Menu Bar,  Prev: Help Menu,  Up: Menu Bar
  762.  
  763. Customizing the Menu Bar
  764. ------------------------
  765.  
  766.    The Menu Bar can be customized in various ways (*note Customizing::).
  767.  
  768. * Menu:
  769.  
  770. * Auto-Raise Menus::
  771. * Customizing the Edit Menu::
  772.  
  773. 
  774. File: ddd.info,  Node: Auto-Raise Menus,  Next: Customizing the Edit Menu,  Up: Customizing the Menu Bar
  775.  
  776. Auto-Raise Menus
  777. ................
  778.  
  779.    You can cause pull-down menus to be raised automatically.
  780.  
  781.  - Resource: autoRaiseMenu (class AutoRaiseMenu)
  782.      If `on' (default), DDD will always keep the pull down menu on top
  783.      of the DDD main window.  If this setting interferes with your
  784.      window manager, or if your window manager does not auto-raise
  785.      windows, set this resource to `off'.
  786.  
  787.  - Resource: autoRaiseMenuDelay (class AutoRaiseMenuDelay)
  788.      The time (in ms) during which an initial auto-raised window blocks
  789.      further auto-raises.  This is done to prevent two overlapping
  790.      auto-raised windows from entering an _auto-raise loop_.  Default is
  791.      `100'.
  792.  
  793. 
  794. File: ddd.info,  Node: Customizing the Edit Menu,  Prev: Auto-Raise Menus,  Up: Customizing the Menu Bar
  795.  
  796. Customizing the Edit Menu
  797. .........................
  798.  
  799.    In the Menu Bar, the `Edit' Menu can be customized in various ways.
  800. Use `Edit => Preferences => Startup' to customize these keys.
  801.  
  802.    The <Ctrl+C> key can be bound to different actions, each in
  803. accordance with a specific style guide.
  804.  
  805. `Copy'
  806.      This setting binds <Ctrl+C> to the Copy operation, as specified by
  807.      the KDE style guide.  In this setting, use <ESC> to interrupt the
  808.      debuggee.
  809.  
  810. `Interrupt'
  811.    This (default) setting binds <Ctrl+C> to the Interrupt operation, as
  812. used in several UNIX command-line programs.  In this setting, use
  813. <Ctrl+Ins> to copy text to the clipboard.
  814.  
  815.    The <Ctrl+A> key can be bound to different actions, too.
  816.  
  817. `Select All'
  818.      This (default) setting binds <Ctrl+A> to the `Select All'
  819.      operation, as specified by the KDE style guide.  In this setting,
  820.      use <Home> to move the cursor to the beginning of a line.
  821.  
  822. `Beginning of Line'
  823.      This setting binds <Ctrl+A> to the `Beginning of Line' operation,
  824.      as used in several UNIX text-editing programs.  In this setting,
  825.      use <Ctrl+Shift+A> to select all text.
  826.  
  827.    Here are the related DDD resources:
  828.  
  829.  - Resource: cutCopyPasteBindings (class BindingStyle)
  830.      Controls the key bindings for clipboard operations.
  831.  
  832.         * If this is `Motif' (default), Cut/Copy/Paste is on
  833.           <Shift+Del>/<Ctrl+Ins>/<Shift+Ins>.  This is conformant to
  834.           the M*tif style guide.
  835.  
  836.         * If this is `KDE', Cut/Copy/Paste is on
  837.           <Ctrl+X>/<Ctrl+C>/<Ctrl+V>.  This is conformant to the KDE
  838.           style guide.  Note that this means that <Ctrl+C> no longer
  839.           interrupts the debuggee; use <ESC> instead.
  840.  
  841.  - Resource: selectAllBindings (class BindingStyle)
  842.      Controls the key bindings for the `Select All' operation.
  843.  
  844.         * If this is `Motif', Select All is on <Shift+Ctrl+A>.
  845.  
  846.         * If this is `KDE' (default), Select All is on <Ctrl+A>.  This
  847.           is conformant to the KDE style guide.  Note that this means
  848.           that <Ctrl+A> no longer moves the cursor to the beginning of
  849.           a line; use <Home> instead.
  850.  
  851. 
  852. File: ddd.info,  Node: Tool Bar,  Next: Command Tool,  Prev: Menu Bar,  Up: Windows
  853.  
  854. The Tool Bar
  855. ============
  856.  
  857.    Some DDD commands require an _argument_.  This argument is specified
  858. in the _argument field_, labeled `():'.  Basically, there are four ways
  859. to set arguments:
  860.  
  861.    * You can _key in_ the argument manually.
  862.  
  863.    * You can _paste_ the current selection into the argument field
  864.      (typically using `mouse button 2').  To clear old contents
  865.      beforehand, click on the `():' label.
  866.  
  867.    * You can _select an item_ from the source and data windows.  This
  868.      will automatically copy the item to the argument field.
  869.  
  870.    * You can select a _previously used argument_ from the drop-down
  871.      menu at the right of the argument field.
  872.  
  873.    Using GDB and Perl, the argument field provides a completion
  874. mechanism.  You can enter the first few characters of an item an press
  875. the <TAB> key to complete it.  Pressing <TAB> again shows alternative
  876. completions.
  877.  
  878.    After having entered an argument, you can select one of the buttons
  879. on the right.  Most of these buttons also have menus associated with
  880. them; this is indicated by a small arrow in the upper right corner.
  881. Pressing and holding _mouse button 1_ on such a button will pop up a
  882. menu with further operations.
  883.  
  884.    These are the buttons of the tool bar.  Note that not all buttons
  885. may be inactive, depending on the current state and the capabilities of
  886. the inferior debugger.
  887.  
  888. `Lookup'
  889.      Look up the argument `()' in the source code.  *Note Looking up
  890.      Definitions::, for details.
  891.  
  892. `Find >>'
  893.      Look up the next occurrence of the argument `()' in the current
  894.      source code.  *Note Textual Search::, for details.
  895.  
  896. `Break/Clear'
  897.      Toggle a breakpoint (*note Breakpoints::) at the location `()'.
  898.  
  899.     `Break'
  900.           If there is no breakpoint at `()', then this button is labeled
  901.           `Break'.  Clicking on `Break' sets a breakpoint at the
  902.           location `()'.  *Note Setting Breakpoints::, for details.
  903.  
  904.     `Clear'
  905.           If there already is a breakpoint at `()', then this button is
  906.           labeled `Clear'.  Clicking on `Clear' clears (deletes) the
  907.           breakpoint at the location `()'.  *Note Deleting
  908.           Breakpoints::, for details.
  909.  
  910. `Watch/Unwatch'
  911.      Toggle a watchpoint (*note Watchpoints::) on the expression `()'.
  912.  
  913.     `Watch'
  914.           If `()' is not being watched, then this button is labeled
  915.           `Watch'.  Clicking on `Watch' creates a watchpoint on the
  916.           expression `()'.  *Note Setting Watchpoints::, for details.
  917.  
  918.     `Unwatch'
  919.           If `()' is being watched, then this button is labeled
  920.           `Unwatch'.  Clicking on `Unwatch' clears (deletes) the
  921.           watchpoint on `()'.  *Note Deleting Watchpoints::, for
  922.           details.
  923.  
  924. `Print'
  925.      Print the value of `()' in the debugger console.  *Note Printing
  926.      Values::, for details.
  927.  
  928. `Display'
  929.      Display the value of `()' in the data window.  *Note Displaying
  930.      Values::, for details.
  931.  
  932. `Plot'
  933.      Plot `()' in a plot window.  *Note Plotting Values::, for details.
  934.  
  935. `Show/Hide'
  936.      Toggle details of the selected display(s).  *Note Showing and
  937.      Hiding Details::, for a discussion.
  938.  
  939. `Rotate'
  940.      Rotate the selected display(s).  *Note Rotating Displays::, for
  941.      details.
  942.  
  943. `Set'
  944.      Set (change) the value of `()'.  *Note Assignment::, for details.
  945.  
  946. `Undisp'
  947.      Undisplay (delete) the selected display(s).  *Note Deleting
  948.      Displays::, for details.
  949.  
  950. * Menu:
  951.  
  952. * Customizing the Tool Bar::
  953.  
  954. 
  955. File: ddd.info,  Node: Customizing the Tool Bar,  Up: Tool Bar
  956.  
  957. Customizing the Tool Bar
  958. ------------------------
  959.  
  960.    The DDD tool bar buttons can appear in a variety of styles,
  961. customized via `Edit => Preferences => Startup'.
  962.  
  963. `Images'
  964.      This lets each tool bar button show an image illustrating the
  965.      action.
  966.  
  967. `Captions'
  968.      This shows the action name below the image.
  969.  
  970.    The default is to have images as well as captions, but you can
  971. choose to have only images (saving space) or only captions.
  972.  
  973.    If you choose to have neither images nor captions, tool bar buttons
  974. are labeled like other buttons, as in DDD 2.x.  Note that this implies
  975. that in the stacked window configuration, the common tool bar cannot be
  976. displayed; it is replaced by two separate tool bars, as in DDD 2.x.
  977.  
  978.    If you enable `Flat' buttons (default), the border of tool bar
  979. buttons will appear only if the mouse pointer is over them.  This
  980. latest-and-greatest GUI invention can be disabled, such that the button
  981. border is always shown.
  982.  
  983.    If you enable `Color' buttons, tool bar images will be colored when
  984. entered.  If DDD was built using M*tif 2.0 and later, you can also
  985. choose a third setting, where buttons appear in color all the time.
  986.  
  987.    Here are the related resources (*note Customizing::):
  988.  
  989.  - Resource: activeButtonColorKey (class ColorKey)
  990.      The XPM color key to use for the images of active buttons (entered
  991.      or armed).  `c' means color, `g' (default) means grey, and `m'
  992.      means monochrome.
  993.  
  994.  - Resource: buttonCaptions (class ButtonCaptions)
  995.      Whether the tool bar buttons should be shown using captions (`on',
  996.      default) or not (`off').  If neither captions nor images are
  997.      enabled, tool bar buttons are shown using ordinary labels.  See
  998.      also `buttonImages', below.
  999.  
  1000.  - Resource: buttonCaptionGeometry (class ButtonCaptionGeometry)
  1001.      The geometry of the caption subimage within the button icons.
  1002.      Default is `29x7+0-0'.
  1003.  
  1004.  - Resource: buttonImages (class ButtonImages)
  1005.      Whether the tool bar buttons should be shown using images (`on',
  1006.      default) or not (`off').  If neither captions nor images are
  1007.      enabled, tool bar buttons are shown using ordinary labels.  See
  1008.      also `buttonCaptions', above.
  1009.  
  1010.  - Resource: buttonImageGeometry (class ButtonImageGeometry)
  1011.      The geometry of the image within the button icon.  Default is
  1012.      `25x21+2+0'.
  1013.  
  1014.  - Resource: buttonColorKey (class ColorKey)
  1015.      The XPM color key to use for the images of inactive buttons
  1016.      (non-entered or insensitive).  `c' means color, `g' (default)
  1017.      means grey, and `m' means monochrome.
  1018.  
  1019.  - Resource: flatToolbarButtons (class FlatButtons)
  1020.      If `on' (default), all tool bar buttons with images or captions
  1021.      are given a `flat' appearance--the 3-D border only shows up when
  1022.      the pointer is over the icon.  If `off', the 3-D border is shown
  1023.      all the time.
  1024.  
  1025.  - Resource: flatDialogButtons (class FlatButtons)
  1026.      If `on' (default), all dialog buttons with images or captions are
  1027.      given a `flat' appearance--the 3-D border only shows up when the
  1028.      pointer is over the icon.  If `off', the 3-D border is shown all
  1029.      the time.
  1030.  
  1031. 
  1032. File: ddd.info,  Node: Command Tool,  Next: Getting Help,  Prev: Tool Bar,  Up: Windows
  1033.  
  1034. The Command Tool
  1035. ================
  1036.  
  1037.    The command tool is a small window that gives you access to the most
  1038. frequently used DDD commands.  It can be moved around on top of the DDD
  1039. windows, but it can also be placed besides them.
  1040.  
  1041.    By default, the command tool _sticks_ to the DDD source window:
  1042. Whenever you move the DDD source window, the command tool follows such
  1043. that the distance between source window and command tool remains the
  1044. same.  By default, the command tool is also _auto-raised_, such that it
  1045. stays on top of other DDD windows.
  1046.  
  1047.    The command tool can be configured to appear as a command tool bar
  1048. above the source window; see `Edit => Preferences => Source => Tool
  1049. Buttons Location' for details.
  1050.  
  1051.    Whenever you save DDD state, DDD also saves the distance between
  1052. command tool and source window, such that you can select your own
  1053. individual command tool placement.  To move the command tool to its
  1054. saved position, use `View => Command Tool'.
  1055.  
  1056.    These are the buttons of the command tool.  Note that not all buttons
  1057. may be inactive, depending on the current state and the capabilities of
  1058. the inferior debugger.
  1059.  
  1060. `Run'
  1061.      Start program execution.  When you click this button, your program
  1062.      will begin to execute immediately.  *Note Starting Program
  1063.      Execution::, for details.
  1064.  
  1065. `Interrupt'
  1066.      Interrupt program execution.  This is equivalent to sending an
  1067.      interrupt signal to the process.  *Note Interrupting::, for
  1068.      details.
  1069.  
  1070. `Step'
  1071.      Continue running your program until control reaches a different
  1072.      source line, then stop it and return control to DDD.  *Note
  1073.      Resuming Execution::, for details.
  1074.  
  1075. `Stepi'
  1076.      Execute one machine instruction, then stop and return to DDD.
  1077.      *Note Machine Code Execution::, for details.
  1078.  
  1079. `Next'
  1080.      Continue to the next source line in the current (innermost) stack
  1081.      frame.  This is similar to `Step', but function calls that appear
  1082.      within the line of code are executed without stopping.  *Note
  1083.      Resuming Execution::, for details.
  1084.  
  1085. `Nexti'
  1086.      Execute one machine instruction, but if it is a function call,
  1087.      proceed until the function returns.  *Note Machine Code
  1088.      Execution::, for details.
  1089.  
  1090. `Until'
  1091.      Continue running until a source line past the current line, in the
  1092.      current stack frame, is reached.  *Note Resuming Execution::, for
  1093.      details.
  1094.  
  1095. `Finish'
  1096.      Continue running until just after function in the selected stack
  1097.      frame returns.  Print the returned value (if any).  *Note Resuming
  1098.      Execution::, for details.
  1099.  
  1100. `Cont'
  1101.      Resume program execution, at the address where your program last
  1102.      stopped; any breakpoints set at that address are bypassed.  *Note
  1103.      Resuming Execution::, for details.
  1104.  
  1105. `Kill'
  1106.      Kill the process of the debugged program.  *Note Killing the
  1107.      Program::, for details.
  1108.  
  1109. `Up'
  1110.      Select the stack frame (i.e. the function) that called this one.
  1111.      This advances toward the outermost frame, to higher frame numbers,
  1112.      to frames that have existed longer.  *Note Stack::, for details.
  1113.  
  1114. `Down'
  1115.      Select the stack frame (i.e. the function) that was called by this
  1116.      one.  This advances toward the innermost frame, to lower frame
  1117.      numbers, to frames that were created more recently.  *Note
  1118.      Stack::, for details.
  1119.  
  1120. `Undo'
  1121.      Undo the most recent action.  Almost all commands can be undone
  1122.      this way.  *Note Undo and Redo::, for details.
  1123.  
  1124. `Redo'
  1125.      Redo the action most recently undone.  Every command undone can be
  1126.      redone this way.  *Note Undo and Redo::, for details.
  1127.  
  1128. `Edit'
  1129.      Invoke an editor for the current source file.  *Note Editing
  1130.      Source Code::, for details.
  1131.  
  1132. `Make'
  1133.      Run the `make' program with the most recently given arguments.
  1134.      *Note Recompiling::, for details.
  1135.  
  1136. * Menu:
  1137.  
  1138. * Customizing the Command Tool::
  1139. * Customizing Tool Position::
  1140.  
  1141. 
  1142. File: ddd.info,  Node: Customizing the Command Tool,  Next: Customizing Tool Position,  Up: Command Tool
  1143.  
  1144. Customizing the Command Tool
  1145. ----------------------------
  1146.  
  1147.    The Command Tool can be customized in various ways.
  1148.  
  1149. * Menu:
  1150.  
  1151. * Disabling the Command Tool::
  1152.  
  1153.    *Note Customizing Buttons::, for details on customizing the tool
  1154. buttons.
  1155.  
  1156. 
  1157. File: ddd.info,  Node: Disabling the Command Tool,  Up: Customizing the Command Tool
  1158.  
  1159. Disabling the Command Tool
  1160. ..........................
  1161.  
  1162.    You can disable the command tool and show its buttons in a separate
  1163. row beneath the tool bar.  To disable the command tool, set `Edit =>
  1164. Preferences => Source => Tool Buttons Location => Source Window'.
  1165.  
  1166.    Here's the related resource:
  1167.  
  1168.  - Resource: commandToolBar (class ToolBar)
  1169.      Whether the tool buttons should be shown in a tool bar above the
  1170.      source window (`on') or within the command tool (`off', default).
  1171.      Enabling the command tool bar disables the command tool and vice
  1172.      versa.
  1173.  
  1174. 
  1175. File: ddd.info,  Node: Customizing Tool Position,  Prev: Customizing the Command Tool,  Up: Command Tool
  1176.  
  1177. Command Tool Position
  1178. ---------------------
  1179.  
  1180.    The following resources control the position of the command tool
  1181. (*note Customizing::):
  1182.  
  1183.  - Resource: autoRaiseTool (class AutoRaiseTool)
  1184.      If `on' (default), DDD will always keep the command tool on top of
  1185.      other DDD windows.  If this setting interferes with your window
  1186.      manager, or if your window manager keeps the command tool on top
  1187.      anyway, set this resource to `off'.
  1188.  
  1189.  - Resource: stickyTool (class StickyTool)
  1190.      If `on' (default), the command tool automatically follows every
  1191.      movement of the source window.  Whenever the source window is
  1192.      moved, the command tool is moved by the same offset such that its
  1193.      position relative to the source window remains unchanged.  If
  1194.      `off', the command tool does not follow source window movements.
  1195.  
  1196.  - Resource: toolRightOffset (class Offset)
  1197.      The distance between the right border of the command tool and the
  1198.      right border of the source text (in pixels).  Default is 8.
  1199.  
  1200.  - Resource: toolTopOffset (class Offset)
  1201.      The distance between the upper border of the command tool and the
  1202.      upper border of the source text (in pixels).  Default is 8.
  1203.  
  1204. * Menu:
  1205.  
  1206. * Customizing Tool Decoration::
  1207.  
  1208. 
  1209. File: ddd.info,  Node: Customizing Tool Decoration,  Up: Customizing Tool Position
  1210.  
  1211. Customizing Tool Decoration
  1212. ...........................
  1213.  
  1214.    The following resources control the decoration of the command tool
  1215. (*note Customizing::):
  1216.  
  1217.  - Resource: decorateTool (class Decorate)
  1218.      This resource controls the decoration of the command tool.
  1219.  
  1220.         * If this is `off', the command tool is created as a _transient
  1221.           window_.  Several window managers keep transient windows
  1222.           automatically on top of their parents, which is appropriate
  1223.           for the command tool.  However, your window manager may be
  1224.           configured not to decorate transient windows, which means
  1225.           that you cannot easily move the command tool around.
  1226.  
  1227.         * If this is `on', DDD realizes the command tool as a
  1228.           _top-level window_.  Such windows are always decorated by the
  1229.           window manager.  However, top-level windows are not
  1230.           automatically kept on top of other windows, such that you may
  1231.           wish to set the `autoRaiseTool' resource, too.
  1232.  
  1233.         * If this is `auto' (default), DDD checks whether the window
  1234.           manager decorates transients.  If yes, the command tool is
  1235.           realized as a transient window (as in the `off' setting); if
  1236.           no, the command tool is realized as a top-level window (as in
  1237.           the `on' setting).  Hence, the command tool is always
  1238.           decorated using the "best" method, but the extra check takes
  1239.           some time.
  1240.  
  1241. 
  1242. File: ddd.info,  Node: Getting Help,  Next: Undo and Redo,  Prev: Command Tool,  Up: Windows
  1243.  
  1244. Getting Help
  1245. ============
  1246.  
  1247.    DDD has an extensive on-line help system.  Here's how to get help
  1248. while working with DDD.
  1249.  
  1250.    * You can get a short help text on most DDD buttons by simply moving
  1251.      the mouse pointer on it and leave it there.  After a second, a
  1252.      small window (called "button tip"; also known as "tool tip" or
  1253.      "balloon help") pops up, giving a hint on the button's meaning.
  1254.      The button tip disappears as soon as you move the mouse pointer to
  1255.      another item.
  1256.  
  1257.    * The "status line" also displays information about the currently
  1258.      selected item.  By clicking on the status line, you can redisplay
  1259.      the most recent messages.
  1260.  
  1261.    * You can get detailed help on any visible DDD item.  Just point on
  1262.      the item you want help and press the `F1' key.  This pops up a
  1263.      detailed help text.
  1264.  
  1265.    * The DDD dialogs all contain `Help' buttons that give detailed
  1266.      information about the dialog.
  1267.  
  1268.    * You can get help on debugger commands by entering `help' at the
  1269.      debugger prompt.  *Note Entering Commands::, for details on
  1270.      entering commands.
  1271.  
  1272.    * If you are totally stuck, try `Help => What Now?' (the `What Now?'
  1273.      item in the `Help' menu) or press <Ctrl+F1>.  Depending on the
  1274.      current state, DDD will give you some hints on what you can do
  1275.      next.
  1276.  
  1277.    * Of course, you can always refer to the _on-line documentation_:
  1278.  
  1279.         - `Help => DDD Reference' gives you access to the DDD manual,
  1280.           the ultimate DDD reference.
  1281.  
  1282.         - `Help => Debugger Reference' shows you the on-line
  1283.           documentation of the inferior debugger.
  1284.  
  1285.         - `Help => DDD WWW Page' gives you access to the latest and
  1286.           greatest information on DDD.
  1287.  
  1288.    * Finally, the DDD "Tip Of The Day" gives you important hints with
  1289.      each new DDD invocation.
  1290.  
  1291.    All these functions can be customized in various ways (*note
  1292. Customizing Help::).
  1293.  
  1294.    If, after all, you made a mistake, don't worry: almost every DDD
  1295. command can be undone.  *Note Undo and Redo::, for details.
  1296.  
  1297. 
  1298. File: ddd.info,  Node: Undo and Redo,  Next: Customizing,  Prev: Getting Help,  Up: Windows
  1299.  
  1300. Undoing and Redoing Commands
  1301. ============================
  1302.  
  1303.    Almost every DDD command can be undone, using `Edit => Undo' or the
  1304. `Undo' button on the command tool.
  1305.  
  1306.    Likewise, `Edit => Redo' repeats the command most recently undone.
  1307.  
  1308.    The `Edit' menu shows which commands are to be undone and redone
  1309. next; this is also indicated by the popup help on the `Undo' and `Redo'
  1310. buttons.
  1311.  
  1312. 
  1313. File: ddd.info,  Node: Customizing,  Prev: Undo and Redo,  Up: Windows
  1314.  
  1315. Customizing DDD
  1316. ===============
  1317.  
  1318.    DDD is controlled by several _resources_--user-defined variables
  1319. that take specific values in order to control and customize DDD
  1320. behavior.
  1321.  
  1322.    Most DDD resources can be set interactively while DDD is running or
  1323. when invoking DDD.  *Note Resource Index::, for the full list of DDD
  1324. resources.
  1325.  
  1326.    We first discuss how customizing works in general; then we turn to
  1327. customizing parts of DDD introduced so far.
  1328.  
  1329. * Menu:
  1330.  
  1331. * How Customizing Works::
  1332. * Customizing Help::
  1333. * Customizing Undo::
  1334. * Customizing Windows::
  1335. * Debugger Settings::
  1336.  
  1337. 
  1338. File: ddd.info,  Node: How Customizing Works,  Next: Customizing Help,  Up: Customizing
  1339.  
  1340. How Customizing DDD Works
  1341. -------------------------
  1342.  
  1343. * Menu:
  1344.  
  1345. * Resources::
  1346. * Changing Resources::
  1347. * Saving Options::
  1348.  
  1349. 
  1350. File: ddd.info,  Node: Resources,  Next: Changing Resources,  Up: How Customizing Works
  1351.  
  1352. Resources
  1353. .........
  1354.  
  1355.    Just like any X program, DDD has a number of places to get resource
  1356. values from.  For DDD, the most important places to specify resources
  1357. are:
  1358.  
  1359.    * The `~/.ddd/init' file (`~' stands for your home directory).  This
  1360.      file is read in by DDD upon start-up; the resources specified
  1361.      herein override all other sources (except for resources given
  1362.      implicitly by command-line options).
  1363.  
  1364.      If the environment variable `DDD_STATE' is set, its value is used
  1365.      instead of `~/.ddd/'.
  1366.  
  1367.    * The `Ddd' application-defaults file.  This file is typically
  1368.      compiled into the DDD executable.  If it exists, its resource
  1369.      values override the values compiled into DDD.  If the versions of
  1370.      the `Ddd' application-defaults file and the DDD executable do not
  1371.      match, DDD may not function properly; DDD will give you a warning
  1372.      in this case.(1)
  1373.  
  1374.    * The command-line options.  These options override all other
  1375.      resource settings.
  1376.  
  1377.    * If the environment variable `DDD_SESSION' is set, it indicates the
  1378.      name of a session to start, overriding all options and resources.
  1379.      This is used by DDD when restarting itself.
  1380.  
  1381.    Not every resource has a matching command-line option.  Each resource
  1382. (whether in `~/.ddd/init' or `Ddd') is specified using a line
  1383.  
  1384.      Ddd*RESOURCE: VALUE
  1385.  
  1386.    For instance, to set the `pollChildStatus' resource to `off', you
  1387. would specify in `~/.ddd/init':
  1388.  
  1389.      Ddd*pollChildStatus: off
  1390.  
  1391.    For more details on the syntax of resource specifications, see the
  1392. section `RESOURCES' in the `X(1)' manual page.
  1393.  
  1394.    ---------- Footnotes ----------
  1395.  
  1396.    (1) If you use a `Ddd' application-defaults file, you will not be
  1397. able to maintain multiple DDD versions at the same time.  This is why
  1398. the suiting `Ddd' is normally compiled into the DDD executable.
  1399.  
  1400. 
  1401. File: ddd.info,  Node: Changing Resources,  Next: Saving Options,  Prev: Resources,  Up: How Customizing Works
  1402.  
  1403. Changing Resources
  1404. ..................
  1405.  
  1406.    You can change DDD resources by three methods:
  1407.  
  1408.    * Use DDD to change the options, notably `Edit => Preferences'.
  1409.      This works for the most important DDD resources.  Be sure to save
  1410.      the options (*note Saving Options::) such that they apply to
  1411.      future DDD sessions, too.
  1412.  
  1413.    * You can also invoke DDD with an appropriate command-line option.
  1414.      This changes the related DDD resource for this particular DDD
  1415.      invocation.  However, if you save the options (*note Saving
  1416.      Options::), the changed resource will also apply to future
  1417.      invocations.
  1418.  
  1419.    * Finally, you can set the appropriate resource in a file named
  1420.      `.ddd/init' in your home directory.  *Note Resource Index::, for a
  1421.      list of DDD resources to be set.
  1422.  
  1423. 
  1424. File: ddd.info,  Node: Saving Options,  Prev: Changing Resources,  Up: How Customizing Works
  1425.  
  1426. Saving Options
  1427. ..............
  1428.  
  1429.    You can save the current option settings by selecting `Edit => Save
  1430. Options'.  Options are saved in a file named `.ddd/init' in your home
  1431. directory.  If a session SESSION is active, options will be saved in
  1432. `~/.ddd/sessions/SESSION/init' instead.
  1433.  
  1434. 
  1435. File: ddd.info,  Node: Customizing Help,  Next: Customizing Undo,  Prev: How Customizing Works,  Up: Customizing
  1436.  
  1437. Customizing DDD Help
  1438. --------------------
  1439.  
  1440.    DDD Help can be customized in various ways.
  1441.  
  1442. * Menu:
  1443.  
  1444. * Button tips::                 Turning off tips.
  1445. * Tip of the day::              Turning off the tip of the day.
  1446. * Help Helpers::                Helper programs invoked by Help.
  1447.  
  1448. 
  1449. File: ddd.info,  Node: Button tips,  Next: Tip of the day,  Up: Customizing Help
  1450.  
  1451. Button Tips
  1452. ...........
  1453.  
  1454.    Button tips are helpful for novices, but may be distracting for
  1455. experienced users.  You can turn off button tips via `Edit =>
  1456. Preferences => General => Automatic display of Button Hints => as Popup
  1457. Tips'.
  1458.  
  1459.    You can also turn off the hint that is displayed in the status line.
  1460. Just toggle `Edit => Preferences => General => Automatic Display of
  1461. Button Hints => in the Status Line'.
  1462.  
  1463.    These are the related DDD resources (*note Customizing::):
  1464.  
  1465.  - Resource: buttonTips (class Tips)
  1466.      If `on' (default), enable button tips.
  1467.  
  1468.  - Resource: buttonDocs (class Docs)
  1469.      If `on' (default), show button hints in the status line.
  1470.  
  1471. 
  1472. File: ddd.info,  Node: Tip of the day,  Next: Help Helpers,  Prev: Button tips,  Up: Customizing Help
  1473.  
  1474. Tip of the day
  1475. ..............
  1476.  
  1477.    You can turn off the tip of the day by toggling `Edit => Preferences
  1478. => Startup => Startup Windows => Tip of the Day'.
  1479.  
  1480.    Here is the related DDD resource (*note Customizing::):
  1481.  
  1482.  - Resource: startupTips (class StartupTips)
  1483.      If `on' (default), show a tip of the day upon DDD startup.
  1484.  
  1485.    *Note Options::, for options to set this resource upon DDD
  1486. invocation.
  1487.  
  1488.    The actual tips are controlled by these resources (*note
  1489. Customizing::):
  1490.  
  1491.  - Resource: startupTipCount (class StartupTipCount)
  1492.      The number N of the tip of the day to be shown at startup.  See
  1493.      also the `tipN' resources.
  1494.  
  1495.  - Resource: tipN (class Tip)
  1496.      The tip of the day numbered N (a string).
  1497.  
  1498.